/// <summary>** BEGIN LICENSE BLOCK *****
/// Version: LGPL 3
/// 
/// Copyright 2008 David Cumps <david@cumps.be>
/// 
/// This file is part of ArmoryLib2.
///
/// ArmoryLib is free software: you can redistribute it and/or modify
/// it under the terms of the GNU Lesser General Public License as published by
/// the Free Software Foundation, either version 3 of the License, or
/// (at your option) any later version.
///
/// ArmoryLib is distributed in the hope that it will be useful,
/// but WITHOUT ANY WARRANTY; without even the implied warranty of
/// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
/// GNU Lesser General Public License for more details.
///
/// You should have received a copy of the GNU Lesser General Public License
/// along with ArmoryLib2.  If not, see <http://www.gnu.org/licenses/>.
/// **** END LICENSE BLOCK ****
/// </summary>
using System;

using ArmoryLib2.Character.RangedDetail;

namespace ArmoryLib2.Character
{
    public class Ranged
    {
        private RangedSlot _rangedSlot;
        public RangedSlot RangedSlot
        {
            get { return _rangedSlot; }
            private set { _rangedSlot = value; }
        }

        private AttackPower _attackPower;
        public AttackPower AttackPower
        {
            get { return _attackPower; }
            private set { _attackPower = value; }
        }

        private Hit _hit;
        public Hit Hit
        {
            get { return _hit; }
            private set { _hit = value; }
        }

        private Crit _crit;
        public Crit Crit
        {
            get { return _crit; }
            private set { _crit = value; }
        }

        internal Ranged(RangedSlot rangedSlot,
                        AttackPower attackPower,
                        Hit hit,
                        Crit crit)
        {
            RangedSlot = rangedSlot;
            AttackPower = attackPower;
            Hit = hit;
            Crit = crit;
        }

        public override string ToString()
        {
            return string.Format("Ranged: {1}{0}" +
                                 "AttackPower: {2}{0}" +
                                 "Hit: {3}{0}" +
                                 "Crit: {4}{0}",
                                 Environment.NewLine,
                                 RangedSlot,
                                 AttackPower,
                                 Hit,
                                 Crit);
        }
    }
}
